////////////////////////////////////////////////////////////////////////////////
// Filename: Camera.h
////////////////////////////////////////////////////////////////////////////////
#ifndef _CAMERA_H_
#define _CAMERA_H_


//////////////
// INCLUDES //
//////////////
#include <windows.h>
#include <xnamath.h>


////////////////////////////////////////////////////////////////////////////////
// Class name: CameraClass
////////////////////////////////////////////////////////////////////////////////
class Camera
{
public:
	Camera();
	Camera(const Camera&);
	~Camera();

	void SetPosition(float, float, float);
	void SetRotation(float, float, float);

	XMFLOAT3 GetPosition();
	XMFLOAT3 GetRotation();

	void Render();
	XMFLOAT4X4* GetViewMatrix();
	XMFLOAT4X4* GetFixedViewMatrix();
	XMFLOAT3 GetVectorOrientation();
private:
	XMFLOAT3 mPosition;
	XMFLOAT3 mUp;
	XMFLOAT3 mFront;
	float m_rotationX, m_rotationY, m_rotationZ;
	XMFLOAT4X4 mViewMatrix;
	XMFLOAT4X4 mFixedViewMatrix;
};
#endif